package mymodel

import (
	"github.com/gogf/gf/v2/os/gtime"
)

// Product 产品基本结构体（保持不变）
type Product struct {
	ProductKey  string `v:"required|length:1,50#产品编码不能为空|产品编码长度必须在1-50个字符之间" json:"productKey"`
	Name        string `v:"required|length:1,100#产品名称不能为空|产品名称长度必须在1-100个字符之间" json:"name"`
	Type        int    `v:"required|min:0#产品类型不能为空|产品类型必须为非负整数" json:"type"`
	OpenStatus  int    `v:"required|in:0,1#产品状态不能为空|产品状态必须为0或1" json:"openStatus"`
	Remark      string `json:"remark"`
	Description string `json:"description"`
	Image       string `json:"image"`
	Version     string `json:"version"`
}

// AppProductResponse 产品列表响应结构体（与数据库实体一一对应）
type AppProductResponse struct {
	Id                  uint64      `json:"id"                  orm:"id"                    description:""`
	Name                string      `json:"name"                orm:"name"                  description:"显示名称"`
	ProductKey          string      `json:"productKey"          orm:"product_key"           description:"产品标识"`
	Type                int         `json:"type"                orm:"type"                  description:"节点类型【0 直连设备 1网关设备 2子设备 】"`
	Description         string      `json:"description"         orm:"description"           description:"描述"`
	Remark              string      `json:"remark"              orm:"remark"                description:"备注"`
	Image               string      `json:"image"               orm:"image"                 description:"图片"`
	CreatedAt           *gtime.Time `json:"createdAt"           orm:"created_at"            description:"创建时间"`
	UpdatedAt           *gtime.Time `json:"updatedAt"           orm:"updated_at"            description:"更新时间"`
	Version             string      `json:"version"             orm:"version"               description:"版本"`
	OpenStatus          int         `json:"openStatus"          orm:"open_status"           description:"激活状态【0非激活 1激活】"`
	OpenStatusTime      *gtime.Time `json:"openStatusTime"      orm:"open_status_time"      description:"激活时间"`
	JointNetworkType    int         `json:"jointNetworkType"    orm:"joint_network_type"    description:"入网类型【0：4g-mqtt，1：4g-tcp ,  2:lora，3:ble，4：usb，5：串口】"`
	TransmisionDataType int         `json:"transmisionDataType" orm:"transmision_data_type" description:"传输数据类型【0自适应，1protobuf， 2json，3自定义】"`
}
